package com.itextpdf.text.pdf;
import com.itextpdf.testutils.CompareTool;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Rectangle;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class NamedDestinationsTest {
private String srcFolder = "./src/test/resources/com/itextpdf/text/pdf/NamedDestinationsTest/";
private String outFolder = "./target/com/itextpdf/test/pdf/NamedDestinationsTest/";
@Before
public void setUp() throws Exception {
new File(outFolder).mkdirs();
}
@Test
public void nameDestinationsTest01() throws IOException, DocumentException, InterruptedException {
String outFile = outFolder+"namedDestinations01.pdf";
FileOutputStream file = new FileOutputStream(outFile);
PdfReader reader = new PdfReader(new FileInputStream(srcFolder+"documentWithoutDestinations.pdf"));
PdfStamper stamper = new PdfStamper(reader, file);
stamper.addNamedDestination("Destination2", 2, new PdfDestination(1, 100, 100, 10));
stamper.close();
CompareTool compareTool = new CompareTool();
String errorMessage = compareTool.compareByContent(outFile, srcFolder + "cmp_namedDestinations01.pdf", outFolder, "diff_");
if (errorMessage != null) {
Assert.fail(errorMessage);
}
}
@Test
public void nameDestinationsTest02() throws IOException, DocumentException, InterruptedException {
String outFile = outFolder+"namedDestinations02.pdf";
FileOutputStream file = new FileOutputStream(outFile);
PdfReader reader = new PdfReader(new FileInputStream(srcFolder+"documentWithDestinations.pdf"));
PdfStamper stamper = new PdfStamper(reader, file);
stamper.addNamedDestination("Destination2", 2, new PdfDestination(1, 100, 100, 10));
stamper.close();
CompareTool compareTool = new CompareTool();
String errorMessage = compareTool.compareByContent(outFile, srcFolder + "cmp_namedDestinations02.pdf", outFolder, "diff_");
if (errorMessage != null) {
Assert.fail(errorMessage);
}
}
@Test
public void addNavigationTest() throws IOException, DocumentException, InterruptedException {
String src = srcFolder + "primes.pdf";
String dest = outFolder + "primes_links.pdf";
PdfReader reader = new PdfReader(src);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
PdfDestination d = new PdfDestination(PdfDestination.FIT);
Rectangle rect = new Rectangle(0, 806, 595, 842);
PdfAnnotation a10 = PdfAnnotation.createLink(stamper.getWriter(), rect, PdfAnnotation.HIGHLIGHT_INVERT, 2, d);
stamper.addAnnotation(a10, 1);
PdfAnnotation a1 = PdfAnnotation.createLink(stamper.getWriter(), rect, PdfAnnotation.HIGHLIGHT_PUSH, 1, d);
stamper.addAnnotation(a1, 2);
stamper.close();
CompareTool compareTool = new CompareTool();
String errorMessage = compareTool.compareByContent(dest, srcFolder + "cmp_primes_links.pdf", outFolder, "diff_");
if (errorMessage != null) {
Assert.fail(errorMessage);
}
}
}